home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Inverse 10
/
Inverse_10_2002-06-20_Oxygen_Side_A.d64
/
z assem 7 - dir
< prev
Wrap
Text File
|
2023-02-26
|
3KB
|
135 lines
*= $1000
fls{CBM-@}buff = $2000
vec{CBM-@}ef = $fc
;---------------------------------------
;Katalog do bufora.
;In: SEC - pliki *.INV, CLC - wszystkie
;---------------------------------------
get{CBM-@}dir
clc
lda #0
sta fls ;Licznik
sta ext{CBM-@}files
rol a
sta d{CBM-@}2+1
ldx #<fls{CBM-@}buff
ldy #>fls{CBM-@}buff
stx vec{CBM-@}ef
sty vec{CBM-@}ef+1
lda #1
ldx #<dollar
ldy #>dollar
jsr $ffbd ;SetNam
lda #1
ldx #8
ldy #0
jsr $ffba ;SetLfs
jsr $ffc0
ldx #1
jsr $ffc6
ldy #8 ;Read DiskName
jsr $ffcf
dey
bne *-4
ldy #0
jsr $ffcf
sta dsk{CBM-@}name,y
iny
cpy #16
bne *-9
jsr $ffcf
bne *-3
d{CBM-@}1 jsr $ffcf
jsr $ffcf ;Jedynki
lda $90
bne eod
jsr $ffcf
jsr $ffcf ;Rozmiar
jsr $ffcf
cmp #"b" ;Blocks Free?
beq eod
jsr $ffcf
cmp #$22 ;Pocz.nazwy?
bne *-5
ldy #15
lda #0
sta (vec{CBM-@}ef),y
dey
bpl *-3
iny
jsr $ffcf
cmp #$22 ;Koniec nazwy?
beq *+12
sta (vec{CBM-@}ef),y
iny
cpy #16
bne *-12
jsr $ffcf ;Koncowy cudz.
jsr $ffcf ;Zbedne spacje
cmp #32
beq *-5
cmp #"p" ;PRG ?
bne d{CBM-@}4
d{CBM-@}2 lda #0
beq d{CBM-@}3
ldy #15 ;Plik *.INV?
ldx #3
lda (vec{CBM-@}ef),y
cmp sign,x
bne d{CBM-@}4
dey
dex
bpl *-9
d{CBM-@}3 lda vec{CBM-@}ef
clc
adc #16
sta vec{CBM-@}ef
bcc *+4
inc vec{CBM-@}ef+1
inc fls
d{CBM-@}4 jsr $ffcf ;Czekaj na
bne *-3 ;koniec linii
beq d{CBM-@}1
eod
lda fls
cmp tab{CBM-@}lenght
bcc *+9
sec
sbc tab{CBM-@}lenght
sta ext{CBM-@}files
lda #1 ;close
jsr $ffc3
jmp $ffcc ;clrchn
;--------
fls .byte 0
;---------------------------------------
init{CBM-@}drive
lda #8
jsr $ffb1
lda #$6f
jsr $ff93
lda #"i"
jsr $ffa8
jmp $ffae
;---------------------------------------
; zmienne globalne
dsk{CBM-@}name .text " "
.byte 13,0
dollar
.text "$"
sign
.text ".inv"
tab{CBM-@}lenght
.byte 20
ext{CBM-@}files
.byte 0
files{CBM-@}pos
.byte 0
;---------------------------------------